import Vue from 'vue'
// 对应成小程序中的 App
import App from './App'

Vue.config.productionTip = false
App.mpType = 'app'

// 替换axios的底层的适配器
import axios from 'axios'
axios.defaults.baseURL = 'https://www.zhengzhicheng.cn/api/public/v1/'

// 添加请求拦截器
axios.interceptors.request.use(
    function(config) {
        // 在发送请求之前做些什么
        if (mpvue.getStorageSync('token')) {
            config.headers.Authorization = mpvue.getStorageSync('token')
        }
        return config
    },
    function(error) {
        // 对请求错误做些什么
        return Promise.reject(error)
    }
)

// 适配器
axios.defaults.adapter = function(config) {
    mpvue.showLoading({
        title: '正在拼命加载中...', //提示的内容,
        mask: true //显示透明蒙层，防止触摸穿透,
    })
    return new Promise((resolve, reject) => {
        // mpvue === wx
        mpvue.request({
            url: config.url, //开发者服务器接口地址",
            data: config.data, //请求的参数",
            method: config.method,
            // todo header
            header: config.headers,
            success: res => {
                resolve(res)
            },
            fail: err => {
                reject(err)
            },
            complete: () => {
                mpvue.hideLoading()
            }
        })
    })
}

Vue.prototype.$axios = axios

const app = new Vue(App)
app.$mount()
